home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Item MB Quick & Easy 2.0
/
Item MB Quick & Easy 2.0.iso
/
mbfacad
/
eaitstd3.lsp
< prev
next >
Wrap
Lisp/Scheme
|
1998-03-15
|
83KB
|
2,557 lines
;---------------------------------------------------------------------------
; Die Koordinatensystem einrichten
; neu seit Version 2.0
; dadurch ist man flexibler. Man kann z.B. das BKS EAITucstop nach seinen Bedⁿrfnisen
; einrichten und alle weiteren BKS werden vom Programm darauf ausgerichtet.
(if (NOT (tblsearch "UCS" "EAITucstop"))
(progn
(command EAITbks EAITbwe)
(command EAITbks EAITb3p "0,0,0" " 0.7070, 0.4083,-0.5774" "-0.7072, 0.4081,-0.5774")
; (command EAITbks EAITbx 35)
; (command EAITbks EAITby 45)
; (command EAITbks EAITbx -90)
; (command EAITbks EAITbz 5)
(command EAITbks EAITbsi "EAITucstop")
)
)
(if (NOT (tblsearch "UCS" "EAITucsbot"))
(progn
(command EAITbks EAITbho "EAITucstop")
(command EAITbks EAITby 180)
(command EAITbks EAITbsi "EAITucsbot")
)
)
(if (NOT (tblsearch "UCS" "EAITucsrr"))
(progn
(command EAITbks EAITbho "EAITucstop")
(command EAITbks EAITbx 90)
(command EAITbks EAITby 90)
(command EAITbks EAITbsi "EAITucsrr")
)
)
(if (NOT (tblsearch "UCS" "EAITucsrl"))
(progn
(command EAITbks EAITbho "EAITucstop")
(command EAITbks EAITbx 90)
(command EAITbks EAITby 180)
(command EAITbks EAITbsi "EAITucsrl")
)
)
(if (NOT (tblsearch "UCS" "EAITucsfl"))
(progn
(command EAITbks EAITbho "EAITucstop")
(command EAITbks EAITbx 90)
(command EAITbks EAITby -90)
(command EAITbks EAITbsi "EAITucsfl")
)
)
(if (NOT (tblsearch "UCS" "EAITucsfr"))
(progn
(command EAITbks EAITbho "EAITucstop")
(command EAITbks EAITbx 90)
(command EAITbks EAITbsi "EAITucsfr")
)
)
(command EAITbks EAITbwe)
;***************************************************************************
;**** Definieren der Funktion zum Fuellen der BKS-Dialogbox ****
;***************************************************************************
(defun fill_bks ( w_list / name xx yy)
;Zu dieser Funktion muß eine Liste namens w_list vorhanden sein,
;welche die key-Werte der image-buttons der BKSfenster
;enthaelt
(foreach n w_list
(start_image n)
(setq xx (dimx_tile n)
yy (dimy_tile n)
)
(setq name (strcat "P_" n))
(if (= EAITrot "i=MB-BKS1") (setq name (strcat "ISO_" n)))
(if (= EAITrot "i=MB-BKS2") (setq name (strcat "ISO_" n)))
(if (= EAITrot "i=MB-BKS3") (setq name (strcat "ISO_" n)))
(if (= EAITrot "i=MB-BKS5") (setq name (strcat "F_" n)))
(slide_image 0 0 xx yy (strcat EAITpfn "EAIT3d(" name ")"))
(action_tile n "(setq AIT_ro $key)")
(end_image)
)
)
;---------------------------------------------------------------------------
;BKS in der ISOMETRIE
(defun EAITibks (AIT_ro)
(princ " -> ")(EAITmsg "mb_mld1" nil "002" nil)(princ " ")(princ AIT_ro)(princ "\n")
(EAITvari)
;(setq oldosmode (getvar "OSMODE"))
(setvar "OSMODE" 0)
(command EAITbks EAITbwe)
(cond
((= AIT_ro "O") (command EAITbks EAITbho "EAITucstop"))
((= AIT_ro "U") (command EAITbks EAITbho "EAITucsbot"))
((= AIT_ro "VL")(command EAITbks EAITbho "EAITucsfl"))
((= AIT_ro "HR")(command EAITbks EAITbho "EAITucsrr"))
((= AIT_ro "VR")(command EAITbks EAITbho "EAITucsfr"))
((= AIT_ro "HL")(command EAITbks EAITbho "EAITucsrl"))
)
(EAITvarz)
;(setvar "OSMODE" oldosmode)
(princ)
)
;---------------------------------------------------------------------------
;Teil absetzen
(defun EAITzst (/ AIT-p1 AIT-p2 AIT-e AIT-n AIT-elx)
(EAITvars)
;absetzen**********************
(setvar "OSMODE" 0)
(setvar "ORTHOMODE" 1)
(EAITmsg "mb_mld1" "\n" "003" nil)
(cond ((= EAITtyp "PKT")(princ))
((= (substr EAITtyp 1 1) "L")
(command EAITege (strcat EAITpfn "3d/" EAITgraf) pause EAITxyz "1" "1" EAITl1 pause
"0" EAITnr EAITnrx EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITme EAITve)
(setq AIT-e (ssget EAITgetl))
)
((= (substr EAITtyp 1 1) "B")
(command EAITege (strcat EAITpfn "3d/" EAITgraf) pause EAITxyz EAITl1 EAITb1 EAITt1 pause
"0" EAITnr EAITnrx EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl2 2 1) (rtos EAITb2 2 1) EAITme EAITve)
(setq AIT-e (ssget EAITgetl))
)
((= (substr EAITtyp 1 1) "K")
(command EAITege (strcat EAITpfn "3d/" EAITgraf) pause "" "" pause
"0" EAITnr EAITnrx EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITme EAITve)
(setq AIT-e (EAITidx AIT-e))
)
)
;verschieben (nicht Bezugspunkt)
(if (/= EAITtyp "PKT")
(while AIT-e
(if (= EAITtyp "K2")(redraw (ssname AIT-e 0) 3))
(setvar "ORTHOMODE" 0)
(setvar "OSMODE" 9)
(EAITmsg "mb_mld1" "\n" "004" "\n")
(setq AIT-p1 (getpoint))
(if AIT-p1 (progn
(setq AIT-p2 (getpoint AIT-p1))
(if AIT-p2 (progn
(setvar "ORTHOMODE" 0)
(setvar "OSMODE" 0)
(cond ((= EAITtyp "K2")(setq AIT-elx (ssname AIT-e 0))
(command EAITsch AIT-elx "" AIT-p1 AIT-p2 )
(setq AIT-e (ssdel AIT-elx AIT-e))
(if (= (sslength AIT-e) 0)(setq AIT-e nil))
)
(T (command EAITsch AIT-e "" AIT-p1 AIT-p2 )
(setq AIT-e nil)
)
)
)
)
)
)
)
(progn
(setvar "ORTHOMODE" 0)
(setvar "OSMODE" 9)
(command EAITege (strcat EAITpfn "3d/EAITpkt") pause EAITxyz "1" "1" EAITl1 "" )
)
)
(if (= EAITtyp "B2")(command EAITdda (entlast)))
;vars zurücksetzen
(if (= abks "0")
(progn
(command EAITbks EAITbvo)
(command EAITbks EAITbvo)
)
)
(EAITvarz)
;Rotation
;(if (/= EAITrot "")(EAITbksw)(menucmd EAITmen3))
(princ)
)
;---------------------------------------------------------------------------
;weitere Blöcke mit Lfd-Index einfügen
(defun EAITidx (AIT_en / AIT-n AIT-graf AIT-wi2 AIT-en AIT-enn AIT-za
AIT-wi AIT-pt AIT-ap1 AIT-ap2 AIT-wp1 AIT-wp2
AIT-zp1 AIT-zp2 AIT-ref)
;Einfügewinkel ermitteln
(setq AIT-en (entget(entlast))
AIT-enn (EAITdxf -1 AIT-en)
AIT-ref (EAITdxf 5 AIT-en)
AIT-za (EAITdxf 210 AIT-en)
AIT-wi (EAITdxf 50 AIT-en)
AIT-pt (EAITdxf 10 AIT-en)
AIT-ap1 (trans AIT-pt AIT-enn 1)
AIT-wp1 (trans AIT-pt AIT-enn 2)
)
(command EAITbks EAITbwe EAITbks EAITbza "0,0,0" AIT-za)
(setq AIT-zp1 (trans AIT-wp1 0 1)
AIT-zp2 (polar AIT-zp1 AIT-wi 1)
AIT-wp2 (trans AIT-zp2 1 0)
)
(command EAITbks EAITbvo EAITbks EAITbvo)
(setq AIT-ap2 (trans AIT-wp2 0 1)
AIT-wi2 (EAITbig (angle AIT-ap1 AIT-ap2))
)
;weitere Blöcke einfügen, wenn vorhanden (max 9 möglich)
(setq AIT_en (ssget EAITgetl)
AIT-n 1
AIT-graf (strcat EAITpfn "3d/" (substr EAITgraf 1 7)(itoa AIT-n) ".dwg")
)
(while (findfile AIT-graf)
(if (= EAITtyp "K3")
(command EAITege AIT-graf AIT-ap1 "" "" AIT-wi2 "0" EAITnr EAITnrx EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITme EAITve)
(command EAITege AIT-graf AIT-ap1 "" "" AIT-wi2 (itoa AIT-n))
)
(setq AIT-en (ssadd (entlast) AIT_en)
AIT-n (1+ AIT-n)
AIT-graf (strcat EAITpfn "3d/" (substr EAITgraf 1 7)(itoa AIT-n) ".dwg")
)
)
(setq AIT_en AIT_en)
)
;---------------------------------------------------------------------------
;Standard-Profil mit Laengeneingabe
(defun EAITtl1 ( / dat_zeig2 w_list dialogwert laenge l1wert)
(EAITvars)
;Dialogboxfunktion:
(setq w_list (list "O" "U" "VL" "VR" "HR" "HL")
dialogwert 5
abks "0"
AIT_ro "O"
)
(if (not EAITlpr)(setq EAITlpr 100.0))
(setq laenge (rtos EAITlpr 2 2))
(if (= EAITtyp "L1")
(progn
(while (< 1 dialogwert)
(setq dat_zeig2 (load_dialog (strcat EAITpfd "EAITem.DCL")))
(if (not (new_dialog "mb_bks4_l1" dat_zeig2)) (exit))
(set_tile "ABKS" abks)
(set_tile "laenge" laenge)
(set_tile "EAITbez1" EAITbez1)
(mode_tile AIT_ro 0)
(fill_bks w_list)
(setq thema (EAITmg "mb_mld21" "012");Hilfe fuer einen item-Befehl
stichwort ":item1"
)
(action_tile "help" "(hilfe stichwort thema)")
(action_tile "ABKS" "(setq abks $value)")
(action_tile "laenge" "(setq laenge $value)") ; Laenge über Tastatur eingegeben
(action_tile "laenge_z" "(done_dialog 6)") ; Laenge aus Zeichnung geholt
(action_tile "einfuegen" "(done_dialog 4)") ; Einfügeknopf betaetigt
(action_tile "cancel" "(done_dialog 0)")
(action_tile "popup" "(done_dialog 1)")
(setq dialogwert (start_dialog))
(start_dialog)
(if (= dialogwert 1) (menucmd EAITmen3))
(if (= dialogwert 6)
(progn
(setvar "OSMODE" 9)
(if (= EAITtyp "PKT")(EAITmsg "mb_mld1" "\n" "036" " <")(EAITmsg "mb_mld1" "\n" "005" " <"))(princ EAITlpr)(princ "> ")
(initget (+ 2 4))
(setq EAITl1 (getdist " "))
(if (= EAITl1 nil)(setq EAITl1 EAITlpr))
(while (and (or (> EAITl1 EAITlmax)(<= EAITl1 EAITlmin)) (/= EAITtyp "PKT"))
(EAITabm_warn)
(initget (+ 2 4))
(setq EAITl1 (getdist " "))
(if (= EAITl1 nil)(setq EAITl1 EAITlpr))
)
(setvar "OSMODE" 0)
(setq laenge (rtos EAITl1 2 1))
)
); dialogwert 6
(if (= dialogwert 4)
(progn
(if (and (/= laenge nil) (/= laenge "")
(> (ascii laenge) 47) (< (ascii laenge) 58))
(setq EAITl1 (atof laenge))
(setq EAITl1 EAITlpr
laenge (rtos EAITl1 2 1)
)
)
(if (and (or (> EAITl1 EAITlmax)(<= EAITl1 EAITlmin)) (/= EAITtyp "PKT"))
(progn
(EAITabm_warn)
);progn
(progn
;1 Nachkommastelle
(setq EAITl1 (/ (float (fix (+ (* EAITl1 10.0) 0.5))) 10))
;letzte Laenge (L1) merken
(setq EAITlpr EAITl1)
(EAITvarz)
;Rotation
(if (= abks "0") (EAITibks AIT_ro))
;Rotation nicht bei Anwahl aktuelles BKS
;Einfuegen
(EAITzst)
(princ)
);progn
);if
);progn
); dialogwert 4
);while
(unload_dialog dat_zeig2)
);progn
);if "L1"
(if (= EAITtyp "PKT")
(progn
(while (< 1 dialogwert)
(setq dat_zeig2 (load_dialog (strcat EAITpfd "EAITem.DCL")))
(if (not (new_dialog "bezpkt" dat_zeig2)) (exit))
(set_tile "ABKS" abks)
(set_tile "laenge" laenge)
(mode_tile AIT_ro 0)
(fill_bks w_list)
(setq thema (EAITmg "mb_mld21" "012");Hilfe fuer einen item-Befehl
stichwort ":item1"
)
(action_tile "help" "(hilfe stichwort thema)")
(action_tile "ABKS" "(setq abks $value)")
(action_tile "laenge" "(setq laenge $value)") ; Laenge über Tastatur eingegeben
(action_tile "laenge_z" "(done_dialog 6)") ; Laenge aus Zeichnung geholt
(action_tile "einfuegen" "(done_dialog 4)") ; Einfügeknopf betaetigt
(action_tile "cancel" "(done_dialog 0)")
(setq dialogwert (start_dialog))
(start_dialog)
(if (= dialogwert 6)
(progn
(setvar "OSMODE" 9)
(if (= EAITtyp "PKT")(EAITmsg "mb_mld1" "\n" "036" " <")(EAITmsg "mb_mld1" "\n" "005" " <"))(princ EAITlpr)(princ "> ")
(initget (+ 2 4))
(setq EAITl1 (getdist " "))
(if (= EAITl1 nil)(setq EAITl1 EAITlpr))
(while (and (or (> EAITl1 EAITlmax)(<= EAITl1 EAITlmin)) (/= EAITtyp "PKT"))
(EAITmsg "mb_mld1" "\n\n" "006" " ")(princ EAITlmin)(princ " / ")(princ EAITlmax)(EAITmsg "mb_mld1" " " "007" nil)
(EAITmsg "mb_mld1" "\n" "005" " <")(princ EAITlpr)(princ "> ")
(initget (+ 2 4))
(setq EAITl1 (getdist " "))
(if (= EAITl1 nil)(setq EAITl1 EAITlpr))
)
(setvar "OSMODE" 0)
(setq laenge (rtos EAITl1 2 2))
)
)
(if (= dialogwert 4)
(progn
(if (and (/= laenge nil) (/= laenge "")
(> (ascii laenge) 47) (< (ascii laenge) 58))
(setq EAITl1 (atof laenge))
(setq EAITl1 EAITlpr
laenge (rtos EAITl1 2 2)
)
)
;1 Nachkommastelle
(setq EAITl1 (/ (float (fix (+ (* EAITl1 10.0) 0.5))) 10))
(princ "\n -> ")(princ EAITl1)
;letzte Laenge (L1) merken
(setq EAITlpr EAITl1)
(EAITvarz)
;Rotation
(if (= abks "0") (EAITibks AIT_ro))
;Rotation nicht bei Anwahl aktuelles BKS
;Einfuegen
(EAITzst)
(princ)
)
)
)
(unload_dialog dat_zeig2)
)
);if "PKT"
;Klemmprofil mit Leiste
(if (= EAITtyp "L2")
(progn
(if (not EAITlp2)(setq EAITlp2 0.0))
(if (> EAITl1 EAITlp2)(setq EAITb1 (float(fix (- EAITl1 EAITlp2))))(setq EAITb1 EAITl1))
(setq l1wert "l1")
(while (< 1 dialogwert)
(setq breite (rtos EAITb1 2 2))
(setq dat_zeig2 (load_dialog (strcat EAITpfd "EAITem.DCL")))
(if (not (new_dialog "mb_bks4_l2" dat_zeig2)) (exit))
(set_tile "ABKS" abks)
(set_tile "laenge" laenge)
(set_tile "breite" breite)
(set_tile "EAITbez1" EAITbez1)
(if (/= l1wert "breite") (set_tile l1wert "1"))
(mode_tile AIT_ro 0)
(fill_bks w_list)
(setq thema (EAITmg "mb_mld21" "012");Hilfe fuer einen item-Befehl
stichwort ":item1"
)
(action_tile "help" "(hilfe stichwort thema)")
(action_tile "ABKS" "(setq abks $value)")
(action_tile "l1" "(setq l1wert $key)")
(action_tile "l1_5" "(setq l1wert $key)")
(action_tile "l1_50" "(setq l1wert $key)")
(action_tile "laenge" "(setq laenge $value)")
(action_tile "breite" "(setq breite $value)(setq l1wert $key)")
(action_tile "laenge_z" "(done_dialog 6)")
(action_tile "einfuegen" "(done_dialog 4)")
(action_tile "cancel" "(done_dialog 0)")
(action_tile "popup" "(done_dialog 1)")
(setq dialogwert (start_dialog))
(start_dialog)
(if (= dialogwert 1) (menucmd EAITmen3))
(if (= dialogwert 6)
(progn
(setvar "OSMODE" 9)
(if (= EAITtyp "PKT")(EAITmsg "mb_mld1" "\n" "036" " <")(EAITmsg "mb_mld1" "\n" "005" " <"))(princ EAITlpr)(princ "> ")
(initget (+ 2 4))
(setq EAITl1 (getdist " "))
(if (= EAITl1 nil)(setq EAITl1 EAITlpr))
(while (and (or (> EAITl1 EAITlmax)(<= EAITl1 EAITlmin)) (/= EAITtyp "PKT"))
(EAITabm_warn)
;(EAITmsg "mb_mld1" "\n\n" "006" " ")(princ EAITlmin)(princ " / ")(princ EAITlmax)(EAITmsg "mb_mld1" " " "007" nil)
;(EAITmsg "mb_mld1" "\n" "005" " <")(princ EAITlpr)(princ "> ")
(initget (+ 2 4))
(setq EAITl1 (getdist " "))
(if (= EAITl1 nil)(setq EAITl1 EAITlpr))
)
(setvar "OSMODE" 0)
(setq laenge (rtos EAITl1 2 2))
)
)
(if (= dialogwert 4)
(progn
(if (and (/= laenge nil) (/= laenge "")
(> (ascii laenge) 47) (< (ascii laenge) 58))
(setq EAITl1 (atof laenge))
(setq EAITl1 EAITlpr
laenge (rtos EAITl1 2 2)
)
)
(if (and (or (> EAITl1 EAITlmax)(<= EAITl1 EAITlmin)) (/= EAITtyp "PKT"))
(progn
(EAITabm_warn)
;(EAITmsg "mb_mld1" "\n\n" "006" " ")(princ EAITlmin)(princ " / ")(princ EAITlmax)(EAITmsg "mb_mld1" " " "007" nil)
;(EAITmsg "mb_mld1" "\n" "005" " <")(princ EAITlpr)(princ "> ")
);progn
(progn
;1 Nachkommastelle
(setq EAITl1 (/ (float (fix (+ (* EAITl1 10.0) 0.5))) 10))
(princ "\n -> ")(princ EAITl1)
;letzte Laenge (L1) merken
(setq EAITlpr EAITl1)
;Klemmlaenge:
(if (= l1wert "l1")
(setq EAITb1 EAITl1)
)
(if (= l1wert "l1_5")
(setq EAITb1 (- EAITl1 5.0))
)
(if (= l1wert "l1_50")
(setq EAITb1 (- EAITl1 50.0))
)
(if (= l1wert "breite")
(if (and (/= breite nil) (/= breite "")
(> (ascii breite) 47) (< (ascii breite) 58))
(setq EAITb1 (atof breite))
(setq EAITb1 EAITlp2
breite (rtos EAITb1 2 2)
)
)
)
(cond ((<= EAITb1 0.0)
(setq EAITb1 0.0)
)
((> EAITb1 EAITlmax)
(EAITmsg "mb_mld10" "\n" "021" nil) (EAITmsg "mb_mld13" " " "005" " ")
(princ EAITlmax)(EAITmsg "mb_mld13" " " "006" nil) (EAITmsg "mb_mld10" nil "022" "\n")
(setq EAITb1 0.0)
)
(T
(setq EAITlp2 (float (fix (- EAITl1 EAITb1))))
)
);cond
;Klemmleiste ohne Nachkommastellen
(setq EAITb1 (float (fix EAITb1)) )
(princ "\n -> ")(princ EAITl1)(princ " / ")(princ EAITb1)
(EAITvarz)
;Rotation
(if (= abks "0") (EAITibks AIT_ro))
;Rotation nicht bei Anwahl aktuelles BKS
;Einfuegen
(EAITzst)
(princ)
);progn
);if
);progn
);if dialogwert 4
);while
(unload_dialog dat_zeig2)
);progn
);if
);defun EAITtl1
;---------------------------------------------------------------------------
;3D-Element aufrufen
(defun EAITstrt (AIT_nrx AIT_pop / AIT-gr)
(EAITvari)
;3D-Bezugspunkt oder 3D-Element?
(if (not AIT_nrx)
(progn
(EAITmsg "mb_mld2" "\n" "016" "\n")
(setq EAITtyp "PKT"
EAITrot "i=MB-BKS4"
EAITnrx nil
EAITnr 0
)
(if (not EAITmen3)(setq EAITmen3 "p1=*"))
)
(progn
(if (> (strlen AIT_nrx) 7)(setq AIT-gr (substr AIT_nrx 8 1) AIT_nrx (substr AIT_nrx 1 7))(setq AIT-gr nil) )
(EAITDBL AIT_nrx)
(if (AND (findfile (strcat EAITpfn "3d/" AIT_nrx ".DWG"))(NOT (tblsearch "block" AIT_nrx)))(EAIT3Dis AIT_nrx))
)
)
;verzweigen
(if EAITn r
(progn
(if AIT-gr (setq EAITgraf (strcat EAITnrx AIT-gr)));bei gleicher Bestellnummer und untersch. Grafik
(if AIT_pop (setq EAITmen3 AIT_pop)) ;bei Aufruf aus versch. Pop-Ups, kann px=* aus Menü vorgegeben werden
(cond ((= EAITtyp "L1") (EAITTL1))
((= EAITtyp "L2") (EAITTL1))
((= EAITtyp "PKT")(EAITTL1))
((= EAITtyp "B1") (EAITTB1))
((= EAITtyp "B2") (EAITTB1))
((= EAITtyp "K1") (EAITbksw))
((= EAITtyp "K2") (EAITbksw))
((= EAITtyp "K3") (EAITbksw))
((= EAITtyp "V1") (EAITv1))
(T (EAITzst))
)
)
)
(princ)
)
;---------------------------------------------------------------------------
;***Hauptelement für Subelemente suchen und verifizieren***
(defun EAITv1 ( / AIT-eb AIT-x AIT-nr)
(EAITvari)
(EAITvars)
(setq AIT-eb (car (entsel)))
(while (and (/= AIT-eb nil)(= (EAITdxf 0 (entget AIT-eb)) "INSERT"))
;3D-Struktur vorhanden?
(setq AIT-x "X")
;Index-Element? -> Hauptelement selektieren
(if (entnext AIT-eb)
(if (and (= (EAITdxf 0 (entget (entnext AIT-eb))) "ATTRIB")(= (EAITdxf 2 (entget (entnext AIT-eb))) "EAIT3D_REF"))
(progn
(setq AIT-eb (EAIThb AIT-eb))
(if (entnext AIT-eb)
(if (and (= (EAITdxf 0 (entget (entnext AIT-eb))) "ATTRIB")(= (EAITdxf 2 (entget (entnext AIT-eb))) "EAIT3D_REF")) (setq AIT-x nil))
(setq AIT-x nil)
)
)
)
)
;Haupt-Element?
(if (and AIT-x (entnext AIT-eb))
(if (entnext(entnext AIT-eb))
(if (entnext(entnext(entnext AIT-eb)))(setq AIT-x "X")(princ))
(setq AIT-x nil)
)
(setq AIT-x nil)
)
;3D-Element
(if AIT-x
(progn
(setq AIT-nr (EAITdxf 1 (entget (entnext(entnext(entnext AIT-eb))))) )
; (if (and (/= AIT-nr nil) (findfile (strcat EAITpfn "dat/" AIT-nr ".dat")))
(if (and (/= AIT-nr nil) (findfile (strcat EAITpfd AIT-nr ".dat")))
(progn
(EAITzuw AIT-eb AIT-nr)
)
(progn
(EAITmsg "mb_mld1" "\n\n" "023" nil);Ungültig
(EAITmsg "mb_mld1" "\n" "022" nil);KEIN item-Element
)
)
)
(progn
(EAITmsg "mb_mld1" "\n\n" "023" nil);Ungültig
(EAITmsg "mb_mld1" "\n" "022" nil);KEIN item-Element
)
)
(setq AIT-eb (car (entsel)))
)
(EAITvarz)
(menucmd EAITmen3)
(princ)
(princ)
)
;---------------------------------------------------------------------------
;***Subelemente in Block schreiben***
(defun EAITzuw (AIT_ebx AIT_nr / AIT-vze AIT-len AIT-vn AIT-vx AIT-def AIT-n
AIT-anz AIT-anzx AIT-neu AIT-zneu AIT-e
AIT-posx AIT-posy)
(redraw AIT_ebx 3)
(setq AIT-vze (EAITdxf 1 (entget (entnext(entnext(entnext(entnext(entnext(entnext(entnext(entnext(entnext(entnext(entnext(entnext(entnext AIT_ebx)))))))))))))))
AIT-len (strlen AIT-vze)
AIT-vn (fix (/ (+ AIT-len 1.0) 12))
AIT-vx 0
AIT-def 0
AIT-n 0
)
;vorhandene Infos auslesen je 12 Zeichen
(while (< AIT-n AIT-vn)
(if (= (substr AIT-vze (+ (* AIT-n 12) 1) 7) EAITnrx)
(setq AIT-def (atoi (substr AIT-vze (+ (* AIT-n 12) 9) 3))
AIT-vx (+ AIT-n 1)
AIT-n AIT-vn
)
)
(setq AIT-n (+ AIT-n 1))
)
;max 5 Subelemente je 3D-Block
(if (and (>= AIT-vn 5)(= AIT-vx 0))
(EAITmsg "mb_mld5" "\n\n" "002" "\n")
(progn
;neue Anzahl
(EAITmsg "mb_mld5" "\n" "001" nil)(princ " <")(princ AIT-def)(princ "> ")
(setq AIT-anz (getint))
(if (not AIT-anz)(setq AIT-anz AIT-def)(if (> AIT-anz 999)(setq AIT-anz AIT-def)))
(cond ((< AIT-anz 10)(setq AIT-anzx (strcat "00" (itoa AIT-anz))) )
((< AIT-anz 100)(setq AIT-anzx (strcat "0" (itoa AIT-anz))) )
(T (setq AIT-anzx (itoa AIT-anz)) )
)
(setq AIT-neu (strcat EAITnrx "=" AIT-anzx " "))
(if (= AIT-anz 0)(setq AIT-neu ""))
(cond ((= AIT-vn 0) (setq AIT-zneu AIT-neu))
((and (= AIT-vn 1)(= AIT-vx 1))(setq AIT-zneu AIT-neu))
((= AIT-vx 0) (setq AIT-zneu (strcat AIT-vze AIT-neu)))
((= AIT-vx 1) (setq AIT-zneu (strcat AIT-neu (substr AIT-vze 13 AIT-len))))
((= AIT-vx AIT-vn) (setq AIT-zneu (strcat (substr AIT-vze 1 (* (- AIT-vx 1) 12)) AIT-neu)))
(T (setq AIT-zneu (strcat (substr AIT-vze 1 (* (- AIT-vx 1) 12)) AIT-neu (substr AIT-vze (+ (* AIT-vx 12) 1) AIT-len))))
)
;Subelemente eintragen in Attribut
(setq AIT-e (entget (entnext(entnext(entnext(entnext(entnext(entnext(entnext(entnext(entnext(entnext(entnext(entnext(entnext AIT_ebx)))))))))))))))
(setq AIT-e (subst (cons 1 AIT-zneu)(assoc 1 AIT-e) AIT-e))
(entmod AIT-e)
;Pos-Nr korrigieren?
(if (and (> AIT-vx 0)(= AIT-anz 0))
(progn
(setq AIT-e (entget(entnext AIT_ebx))
AIT-posy (cdr (assoc 1 (entget(entnext AIT_ebx))))
AIT-posx (EAITposx AIT-Posy AIT-anz (+ AIT-vx 1))
)
(setq AIT-e (subst (cons 1 AIT-posx)(assoc 1 AIT-e) AIT-e))
(entmod AIT-e)
)
)
)
)
(redraw AIT_ebx 4)
(princ)
)
(princ)
;---------------------------------------------------------------------------
;******************* Attribut - Anfragen sprachabhaengig machen
;******************* für folgende Blöcke: alle 3D-Blöcke
(defun EAIT3Dis (BLN / INF DAT1)
(command EAITege (strcat EAITpfn "3d/" BLN) '(0 0) nil)
(setq INF (tblsearch "block" BLN)
DAT1 (entget (EAITDXF -2 INF))
)
(while (/= DAT1 nil)
(if (= (EAITDXF 0 DAT1) "ATTDEF")
(cond ((= (EAITDXF 2 DAT1) "EAIT3D_POSITION")
(entmod (subst (cons 3 (EAITmg "mb_mld20" "032"))(assoc 3 DAT1) DAT1))
)
((= (EAITDXF 2 DAT1) "EAIT3D_NUMMER")
(entmod (subst (cons 3 (EAITmg "mb_mld20" "031"))(assoc 3 DAT1) DAT1))
)
((= (EAITDXF 2 DAT1) "EAIT3D_NRX")
(entmod (subst (cons 3 (EAITmg "mb_mld20" "034"))(assoc 3 DAT1) DAT1))
)
((= (EAITDXF 2 DAT1) "EAIT3D_BEZEICHNUNG1")
(entmod (subst (cons 3 (EAITmg "mb_mld20" "023"))(assoc 3 DAT1) DAT1))
)
((= (EAITDXF 2 DAT1) "EAIT3D_BEZEICHNUNG2")
(entmod (subst (cons 3 (EAITmg "mb_mld20" "024"))(assoc 3 DAT1) DAT1))
)
((= (EAITDXF 2 DAT1) "EAIT3D_LIEFERANT1")
(entmod (subst (cons 3 (EAITmg "mb_mld20" "025"))(assoc 3 DAT1) DAT1))
)
((= (EAITDXF 2 DAT1) "EAIT3D_LIEFERANT2")
(entmod (subst (cons 3 (EAITmg "mb_mld20" "026"))(assoc 3 DAT1) DAT1))
)
((= (EAITDXF 2 DAT1) "EAIT3D_WERKSTOFF1")
(entmod (subst (cons 3 (EAITmg "mb_mld20" "027"))(assoc 3 DAT1) DAT1))
)
((= (EAITDXF 2 DAT1) "EAIT3D_WERKSTOFF2")
(entmod (subst (cons 3 (EAITmg "mb_mld20" "028"))(assoc 3 DAT1) DAT1))
)
((= (EAITDXF 2 DAT1) "EAIT3D_LAENGE")
(entmod (subst (cons 3 (EAITmg "mb_mld20" "029"))(assoc 3 DAT1) DAT1))
)
((= (EAITDXF 2 DAT1) "EAIT3D_BREITE")
(entmod (subst (cons 3 (EAITmg "mb_mld20" "030"))(assoc 3 DAT1) DAT1))
)
((= (EAITDXF 2 DAT1) "EAIT3D_MENGENEINHEIT")
(entmod (subst (cons 3 (EAITmg "mb_mld20" "035"))(assoc 3 DAT1) DAT1))
)
((= (EAITDXF 2 DAT1) "EAIT3D_VERBINDUNG")
(entmod (subst (cons 3 (EAITmg "mb_mld20" "036"))(assoc 3 DAT1) DAT1))
)
);cond
);if
(setq DAT1 (entnext (EAITDXF -1 DAT1)))
(if (/= DAT1 nil)(setq DAT1 (entget DAT1)))
);while
(princ)
);defun EAIT3Dis
(defun EAIT3DEI ( / P1 P2)
(EAITvari)
(setvar "MAXACTVP" 8)
(command EAITbsy EAITbe
EAITbsy EAITbke
EAITtil "0"
)
(EAITmsg "mb_mld16" "\n" "006" ": ") ;"LIMITEN für mehrfache Ansichtfenster"
(EAITmsg "mb_mld16" "\n" "007" ": ") ;"Linke untere Ecke"
(setq P1 (getpoint))
(EAITmsg "mb_mld16" "\n" "008" ": ") ;"Rechte obere Ecke"
(setq P2 (getpoint P1))
(command EAITlim P1 P2
EAITzom EAITzof P1 P2
)
(if (not (tblsearch "layer" "EAIT3D_VIEW"))
(command EAITlay EAITlma "EAIT3D_VIEW" EAITlfa "5" "" EAITlse "EAIT3D_VIEW" "")
(command EAITlay EAITlse "EAIT3D_VIEW" "")
)
(command EAITman "4" P1 P2
EAITmod
EAITbks EAITbwe
)
(EAITvarz)
(princ)
);defun EAIT3dei
(defun EAITloebp ( / AIT-s)
(EAIThla "E")
(setq AIT-s (ssget "X" '((2 . "EAITPKT"))))
(if AIT-s (command EAITloes AIT-s ""))
(princ)
); defun EAITloebp
;---------------------------------------------------------------------------
(defun EAITbksw ( / dat_zeig2 w_list dialogwert )
(EAITvars)
;Dialogboxfunktion:
(setq w_list (list "O" "U" "VL" "VR" "HR" "HL")
dialogwert 2
abks "0"
AIT_ro "O"
)
(if (or (= EAITtyp "K1") (= EAITtyp "K2") (= EAITtyp "K3"))
(progn
(while (< 1 dialogwert)
(setq dat_zeig2 (load_dialog (strcat EAITpfd "EAITem.DCL")))
(if (not (new_dialog "mb_bks4_k1" dat_zeig2)) (exit))
(set_tile "ABKS" abks)
(set_tile "EAITbez1" EAITbez1)
(mode_tile AIT_ro 0)
(fill_bks w_list)
(setq thema (EAITmg "mb_mld21" "012");Hilfe fuer einen item-Befehl
stichwort ":item1"
)
(action_tile "help" "(hilfe stichwort thema)")
(action_tile "ABKS" "(setq abks $value)")
(action_tile "einfuegen" "(done_dialog 2)")
(action_tile "cancel" "(done_dialog 0)")
(action_tile "popup" "(done_dialog 1)")
(setq dialogwert (start_dialog))
(start_dialog)
(if (= dialogwert 1) (menucmd EAITmen3))
(if (= dialogwert 2)
(progn
;Rotation
(if (= abks "0") (EAITibks AIT_ro))
;Rotation nicht bei Anwahl aktuelles BKS
;Einfuegen
(EAITzst)
(princ)
)
)
)
(unload_dialog dat_zeig2)
)
)
)
;---------------------------------------------------------------------------
;Flaechenelemente
(defun EAITtb1 ( / dat_zeig2 w_list dialogwert laenge breite tiefe AIT-lt AIT-bt AIT-btmp AIT-lw AIT-bw)
(EAITmsg "mb_mld1" "\n" "015" nil)
(princ " ")(princ EAITlp)(princ " ")
(EAITmsg "mb_mld1" nil "007" "\n")
(EAITvars)
;Dialogboxfunktion:
(setq w_list (list "O" "U" "VL" "VR" "HR" "HL")
dialogwert 5
abks "0"
AIT_ro "O"
)
(if (= EAITlp nil) (setq EAITlp 0.0 EAIThr "B"))
(if (not EAITlfl)(setq EAITlfl 100.0))
(if (not EAITtfl)(setq EAITtfl 100.0))
(setq laenge (rtos EAITlfl 2 1))
(if (not EAITbfl)(setq EAITbfl 100.0))
(setq breite (rtos EAITbfl 2 1))
(setq
EAITl1 EAITlfl
EAITb1 EAITbfl
)
(if (= EAITtyp "B1")
(progn
(setq EAITgraf (strcat EAITgraf EAIThr))
(while (< 1 dialogwert)
(setq dat_zeig2 (load_dialog (strcat EAITpfd "EAITem.DCL")))
(if (not (new_dialog "mb_bks5_b1" dat_zeig2)) (exit))
(set_tile "ABKS" abks)
(set_tile "laenge" laenge)
(set_tile "breite" breite)
(set_tile "EAITbez1" EAITbez1)
(mode_tile AIT_ro 0)
(fill_bks w_list)
(setq thema (EAITmg "mb_mld21" "012");Hilfe fuer einen item-Befehl
stichwort ":item1"
)
(action_tile "help" "(hilfe stichwort thema)")
(action_tile "ABKS" "(setq abks $value)")
(action_tile "laenge" "(setq laenge $value)")
(action_tile "breite" "(setq breite $value)")
(action_tile "laenge_z" "(done_dialog 6)")
(action_tile "einfuegen" "(done_dialog 4)")
(action_tile "cancel" "(done_dialog 0)")
(action_tile "popup" "(done_dialog 1)")
(setq dialogwert (start_dialog))
(start_dialog)
(if (= dialogwert 1) (menucmd EAITmen3))
(if (= dialogwert 6)
(progn
(setvar "OSMODE" 9)
;Laengeneingaben mit Prüfung
(setq AIT-lt (1+ EAITlmax) AIT-bt (1+ EAITbmax))
(while (or (> AIT-lt EAITlmax)(> AIT-bt EAITbmax)(<= AIT-lt EAITlmin)(<= AIT-bt EAITlmin))
(EAITmsg "mb_mld1" "\n" "016" " <")(princ EAITlfl)(princ "> ")
(initget (+ 2 4))
(setq AIT-lw (getdist))
(if (= AIT-lw nil)(setq AIT-lw EAITlfl))
(setq AIT-lw (fix (+ (abs AIT-lw) 0.5)))
(EAITmsg "mb_mld1" "\n" "017" " <")(princ EAITbfl)(princ "> ")
(initget (+ 2 4))
(setq AIT-bw (getdist))
(if (= AIT-bw nil)(setq AIT-bw EAITbfl))
(setq AIT-bw (fix (+ (abs AIT-bw) 0.5)))
(setq AIT-lt (+ AIT-lw (* 2 EAITlp)) AIT-bt (+ AIT-bw (* 2 EAITlp)) )
(if (> AIT-bt AIT-lt) (setq AIT-btmp AIT-bt AIT-bt AIT-lt AIT-lt AIT-btmp AIT-btmp AIT-bw AIT-bw AIT-lw AIT-lw AIT-btmp))
(if (or (> AIT-lt EAITlmax)(> AIT-bt EAITbmax)(<= AIT-lt EAITlmin)(<= AIT-bt EAITlmin))
(progn
(EAITabm_warn)
)
(setq EAITl1 AIT-lw EAITb1 AIT-bw EAITl2 AIT-lt EAITb2 AIT-bt)
)
)
(setvar "OSMODE" 0)
(setq
laenge (rtos EAITl1 2 1)
breite (rtos EAITb1 2 1)
)
)
)
(if (= dialogwert 4)
(progn
(if (and (/= laenge nil) (/= laenge "")
(> (ascii laenge) 47) (< (ascii laenge) 58))
(setq AIT-lw (atof laenge))
(setq AIT-lw EAITlfl
laenge (rtos EAITl1 2 1)
)
)
(if (and (/= breite nil) (/= breite "")
(> (ascii breite) 47) (< (ascii breite) 58))
(setq AIT-bw (atof breite))
(setq AIT-bw EAITbfl
breite (rtos EAITb1 2 1)
)
)
(setq AIT-lw (fix (+ (abs AIT-lw) 0.5)))
(setq AIT-bw (fix (+ (abs AIT-bw) 0.5)))
(setq AIT-lt (+ AIT-lw (* 2 EAITlp)) AIT-bt (+ AIT-bw (* 2 EAITlp)) )
(if (> AIT-bt AIT-lt) (setq AIT-btmp AIT-bt AIT-bt AIT-lt AIT-lt AIT-btmp AIT-btmp AIT-bw AIT-bw AIT-lw AIT-lw AIT-btmp))
(if (or (> AIT-lt EAITlmax)(> AIT-bt EAITbmax)(<= AIT-lt EAITlmin)(<= AIT-bt EAITlmin))
(progn
(EAITabm_warn)
)
(progn
(setq EAITl1 AIT-lw EAITb1 AIT-bw EAITl2 AIT-lt EAITb2 AIT-bt)
(princ "\n -> ")(princ EAITl2)(princ "x")(princ EAITb2)(princ " ")(EAITmsg "mb_mld1" nil "007" "\n")
(setq EAITlfl AIT-lw EAITbfl AIT-bw)
(EAITvarz)
;Rotation
(if (= abks "0") (EAITibks AIT_ro))
;Rotation nicht bei Anwahl aktuelles BKS
;Einfuegen
(EAITzst)
(princ)
)
)
)
); if dialogwert 4
)
(unload_dialog dat_zeig2)
)
)
(if (= EAITtyp "B2")
(progn
(if (not EAITtfl)(setq EAITtfl 100.0))
(setq tiefe (rtos EAITtfl 2 1))
(setq
EAITt1 EAITtfl
)
(while (< 1 dialogwert)
(setq dat_zeig2 (load_dialog (strcat EAITpfd "EAITem.DCL")))
(if (not (new_dialog "mb_bks5_b2" dat_zeig2)) (exit))
(set_tile "ABKS" abks)
(set_tile "laenge" laenge)
(set_tile "breite" breite)
(set_tile "tiefe" tiefe)
(set_tile "EAITbez1" EAITbez1)
(mode_tile AIT_ro 0)
(fill_bks w_list)
(setq thema (EAITmg "mb_mld21" "012");Hilfe fuer einen item-Befehl
stichwort ":item1"
)
(action_tile "help" "(hilfe stichwort thema)")
(action_tile "ABKS" "(setq abks $value)")
(action_tile "laenge" "(setq laenge $value)")
(action_tile "breite" "(setq breite $value)")
(action_tile "tiefe" "(setq tiefe $value)")
(action_tile "laenge_z" "(done_dialog 6)")
(action_tile "einfuegen" "(done_dialog 4)")
(action_tile "cancel" "(done_dialog 0)")
(action_tile "popup" "(done_dialog 1)")
(setq dialogwert (start_dialog))
(start_dialog)
(if (= dialogwert 1) (menucmd EAITmen3))
(if (= dialogwert 6)
(progn
(setvar "OSMODE" 9)
(setq AIT-lt (1+ EAITlmax) AIT-bt (1+ EAITbmax))
(while (or (> AIT-lt EAITlmax)(> AIT-bt EAITbmax)(<= AIT-lt EAITlmin)(<= AIT-bt EAITlmin))
(EAITmsg "mb_mld1" "\n" "016" " <")(princ EAITlfl)(princ "> ")
(initget (+ 2 4))
(setq AIT-lw (getdist))
(if (= AIT-lw nil)(setq AIT-lw EAITlfl))
(setq AIT-lw (fix (+ (abs AIT-lw) 0.5)))
(EAITmsg "mb_mld1" "\n" "017" " <")(princ EAITbfl)(princ "> ")
(initget (+ 2 4))
(setq AIT-bw (getdist))
(if (= AIT-bw nil)(setq AIT-bw EAITbfl))
(setq AIT-bw (fix (+ (abs AIT-bw) 0.5)))
(EAITmsg "mb_mld1" "\n" "038" " <")(princ EAITtfl)(princ "> ")
(initget (+ 2 4))
(setq EAITt1 (getdist))
(if (= EAITt1 nil)(setq EAITt1 EAITtfl))
(setq EAITbez1 (strcat EAITbez1 " " (rtos EAITt1 2 0) " " (EAITmg "mb_mld1" "007") )
EAITtfl EAITt1
)
(setq AIT-lt (+ AIT-lw (* 2 EAITlp)) AIT-bt (+ AIT-bw (* 2 EAITlp)) )
(if (> AIT-bt AIT-lt) (setq AIT-btmp AIT-bt AIT-bt AIT-lt AIT-lt AIT-btmp AIT-btmp AIT-bw AIT-bw AIT-lw AIT-lw AIT-btmp))
(if (or (> AIT-lt EAITlmax)(> AIT-bt EAITbmax)(<= AIT-lt EAITlmin)(<= AIT-bt EAITlmin))
(progn
(EAITmsg "mb_mld1" "\n" "018" " ")
(princ EAITlmin)(princ "x")(princ EAITlmin)(princ " / ")(princ EAITlmax)(princ "x")(princ EAITbmax)
(EAITmsg "mb_mld1" " " "007" "\n\n")
)
(setq EAITl1 AIT-lw EAITb1 AIT-bw EAITl2 AIT-lt EAITb2 AIT-bt)
)
)
(princ "\n -> ")(princ EAITl2)(princ "x")(princ EAITb2)(princ "x")(princ EAITt1)(princ " ")(EAITmsg "mb_mld1" nil "007" "\n")
(setvar "OSMODE" 0)
(setq
laenge (rtos EAITl1 2 1)
breite (rtos EAITb1 2 1)
tiefe (rtos EAITt1 2 1)
)
)
)
(if (= dialogwert 4)
(progn
(if (and (/= laenge nil) (/= laenge "")
(> (ascii laenge) 47) (< (ascii laenge) 58))
(setq AIT-lw (atof laenge))
(setq AIT-lw EAITlfl
laenge (rtos EAITl1 2 1)
)
)
(if (and (/= breite nil) (/= breite "")
(> (ascii breite) 47) (< (ascii breite) 58))
(setq AIT-bw (atof breite))
(setq AIT-bw EAITbfl
breite (rtos EAITb1 2 1)
)
)
(if (and (/= tiefe nil) (/= tiefe "")
(> (ascii tiefe) 47) (< (ascii tiefe) 58))
(setq EAITt1 (atof tiefe))
(setq EAITt1 EAITtfl
tiefe (rtos EAITt1 2 1)
)
)
(setq AIT-lw (fix (+ (abs AIT-lw) 0.5)))
(setq AIT-bw (fix (+ (abs AIT-bw) 0.5)))
(setq AIT-lt (+ AIT-lw (* 2 EAITlp)) AIT-bt (+ AIT-bw (* 2 EAITlp)) )
(if (> AIT-bt AIT-lt) (setq AIT-btmp AIT-bt AIT-bt AIT-lt AIT-lt AIT-btmp AIT-btmp AIT-bw AIT-bw AIT-lw AIT-lw AIT-btmp))
(if (or (> AIT-lt EAITlmax)(> AIT-bt EAITbmax)(<= AIT-lt EAITlmin)(<= AIT-bt EAITlmin))
(progn
(EAITmsg "mb_mld1" "\n" "018" " ")
(princ EAITlmin)(princ "x")(princ EAITlmin)(princ " / ")(princ EAITlmax)(princ "x")(princ EAITbmax)
(EAITmsg "mb_mld1" " " "007" "\n\n")
)
(progn
(setq EAITl1 AIT-lw EAITb1 AIT-bw EAITl2 AIT-lt EAITb2 AIT-bt)
(princ "\n -> ")(princ EAITl2)(princ "x")(princ EAITb2)(princ "x")(princ EAITt1)(princ " ")(EAITmsg "mb_mld1" nil "007" "\n")
(setq EAITlfl AIT-lw EAITbfl AIT-bw EAITtfl EAITt1)
;Rotation
(if (= abks "0") (EAITibks AIT_ro))
;Rotation nicht bei Anwahl aktuelles BKS
;Einfuegen
(EAITzst)
(princ)
)
)
)
)
)
(unload_dialog dat_zeig2)
)
)
)
;---------------------------------------------------------------------------
;BKS im Screen - Breich
(defun EAITbksscreen ( / dat_zeig2 w_list dialogwert laenge breite tiefe
AIT-lt AIT-bt AIT-btmp AIT-lw AIT-bw stichwort
thema
)
;(EAITvari)
;(EAITvars)
;Dialogboxfunktion:
(setq w_list (list "O" "U" "VL" "VR" "HR" "HL")
dialogwert 5
EAITrot "i=MB-BKS2"
AIT_ro "O"
)
(while (< 1 dialogwert)
(setq dat_zeig2 (load_dialog (strcat EAITpfd "EAITem.DCL")))
(if (not (new_dialog "bks" dat_zeig2)) (exit))
(mode_tile AIT_ro 0)
(fill_bks w_list)
(setq thema (EAITmg "mb_mld21" "012");Hilfe fuer einen item-Befehl
stichwort ":item1"
)
(action_tile "help" "(hilfe stichwort thema)")
(action_tile "bks_steu" "(done_dialog 4)")
(action_tile "bks_vor" "(done_dialog 6)")
(action_tile "accept" "(done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
(setq dialogwert (start_dialog))
(start_dialog)
(if (= dialogwert 1)
(progn
(EAITibks AIT_ro)
)
)
(if (= dialogwert 4)
(progn
(command EAITddbks)
)
)
(if (= dialogwert 6)
(progn
(command EAITbks EAITbvo)
)
)
);while
(unload_dialog dat_zeig2)
;(EAITvarz)
(princ)
);defun EAITbksscreen
;---------------------------------------------------------------------------
;Drsicht im Screen - Breich
(defun EAITdrsicht ( / dat_zeig2 w_list dialogwert stichwort thema)
;(EAITvari)
;(EAITvars)
;Dialogboxfunktion:
(setq w_list (list "O" "U" "VL" "VR" "HR" "HL")
dialogwert 5
EAITrot "i=MB-BKS3"
AIT_ro "O"
)
;Anpassungen Hauer:
(while (< 4 dialogwert)
(setq dat_zeig2 (load_dialog (strcat EAITpfd "EAITem.DCL")))
(if (not (new_dialog "drsicht" dat_zeig2)) (exit))
(mode_tile AIT_ro 0)
(fill_bks w_list)
(setq thema (EAITmg "mb_mld21" "012");Hilfe fuer einen item-Befehl
stichwort ":item1"
)
(action_tile "help" "(hilfe stichwort thema)")
(action_tile "isometrie" "(done_dialog 2)")
(action_tile "accept" "(done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
(setq dialogwert (start_dialog))
(start_dialog)
;Anpassungen Hauer:
(if (= dialogwert 2)
(progn
(EAITvari)
(EAITmsg "mb_mld1" nil "039" nil)
(command EAITplan EAITplf)
(if (/= (tblnext "UCS" T) nil)
(command EAITbks EAITbvo)
)
(EAITvarz)
)
)
;Ende Anpassungen Hauer
(if (= dialogwert 1)
(progn
;Rotation
(EAITibks AIT_ro)
(command EAITplan "")
(princ)
)
)
);while
(unload_dialog dat_zeig2)
;(EAITvarz)
(princ)
);defun EAITdrsicht
;************************************************************************
; Item - Projektarbeiten Hauer Beginn
; Stand: 25.02.1997
;************************************************************************
;Definieren der Funktion 3D-Ansichten eines Bauteils
(defun EAIT3Dmansfen ( / viewdata AIT_md AIT_mv AIT_ms AIT_mi
viewdmd viewdmv viewdms viewdmi AIT_mlist
AIT_mlist1 AIT_view z1
EAITdat_zeig dialogwert stichwort
thema panwahl panp1 panp2 panfenster m_neu
zoomwahl gesamt_id AIT-neudata blattreferenz
blattref_info blattname blattmasstab
asatzblatt l1 l2 blattelement blattdata
blattrefwert blattrefeed blattnamenwert blattnameeed
blattmasswert blattmasseed blattrefelement
blattlist masstablist blattplu blattpro
blattpluwert blattplueed blattprowert blattproeed
plulist prolist noblattlist nomasstablist
noplulist noprolist refdmd refdmv refdms refdmi
viewdmdreferenz viewdmireferenz viewdmvreferenz
viewdmsreferenz blattwahl blattschirmlist
blattmass_schirm dialogwert_blatt pointlist
refviewlist blattdmdwert blattdmdeed
blattdmiwert blattdmieed blattdmvwert blattdmveed
blattdmswert blattdmseed blattelementlist
schrref_info schrreferenz schriftfeldlist
schrrefwert schrrefeed kommentar blattkommentar
kommentarlist blattkommwert blattkommeed AIT-dat
tsx
)
(EAITvari)
(EAITvars)
;Dim-Layer einrichten:
(if (not (tblsearch "LAYER" "EAITDIM_TOP"))
(command EAITlay EAITlnew "EAITDIM_TOP" EAITlty "CONTINUOUS" "EAITDIM_TOP" EAITlfa "2" "EAITDIM_TOP" "")
)
(if (not (tblsearch "LAYER" "EAITDIM_FRONT"))
(command EAITlay EAITlnew "EAITDIM_FRONT" EAITlty "CONTINUOUS" "EAITDIM_FRONT" EAITlfa "2" "EAITDIM_FRONT" "")
)
(if (not (tblsearch "LAYER" "EAITDIM_SIDE"))
(command EAITlay EAITlnew "EAITDIM_SIDE" EAITlty "CONTINUOUS" "EAITDIM_SIDE" EAITlfa "2" "EAITDIM_SIDE" "")
)
(if (not (tblsearch "LAYER" "EAITDIM_VAR"))
(command EAITlay EAITlnew "EAITDIM_VAR" EAITlty "CONTINUOUS" "EAITDIM_VAR" EAITlfa "2" "EAITDIM_VAR" "")
)
(setq EAITmansfen3d "ok"
dialogwert_blatt 0
AIT-dialogwertblatt dialogwert_blatt
blattlist (list)
blattelementlist (list)
masstablist (list)
plulist (list)
prolist (list)
noblattlist (list)
nomasstablist (list)
noplulist (list)
noprolist (list)
blattschirmlist (list)
pointlist (list)
refviewlist (list)
schriftfeldlist (list)
kommentarlist (list)
AIT-blattlist blattlist
AIT-plulist plulist
AIT-prolist prolist
AIT-noblattlist noblattlist
AIT-nomasstablist nomasstablist
AIT-noplulist noplulist
AIT-noprolist noprolist
)
;vorhandene Blaetter werden ausgelesen:
(setq asatzblatt (ssget "X" '((0 . "POINT") (-3 ("BLATT3D_REFERENZ")))))
(if (/= asatzblatt nil)
(progn
(setq
l1 (sslength asatzblatt)
l2 0
)
(repeat l1
(setq blattelement (ssname asatzblatt l2)
l2 (+ l2 1)
blattdata (entget blattelement '("BLATT3D_REFERENZ"))
blattrefwert (cdr (assoc -3 blattdata))
;Referenz des Blattes:
blattrefeed (cdr (assoc 1005 (cdar blattrefwert)))
blattdata (entget blattelement '("SCHR3D_REFERENZ"))
schrrefwert (cdr (assoc -3 blattdata))
;Referenz des Blattes:
schrrefeed (cdr (assoc 1005 (cdar schrrefwert)))
blattdata (entget blattelement '("BLATTNAME"))
blattnamenwert (cdr (assoc -3 blattdata))
;Name des Blattes:
blattnameeed (cdr (assoc 1000 (cdar blattnamenwert)))
blattdata (entget blattelement '("MASSTAB"))
blattmasswert (cdr (assoc -3 blattdata))
;Masstab des Blattes:
blattmasseed (cdr (assoc 1000 (cdar blattmasswert)))
blattmass_schirm (EAITmstring blattmasseed)
blattdata (entget blattelement '("KOMMENTAR"))
blattkommwert (cdr (assoc -3 blattdata))
;Kommentar des Blattes:
blattkommeed (cdr (assoc 1000 (cdar blattkommwert)))
blattdata (entget blattelement '("BLATTPLU"))
blattpluwert (cdr (assoc -3 blattdata))
;Punkt links unten:
blattplueed (cdr (assoc 1010 (cdar blattpluwert)))
blattdata (entget blattelement '("BLATTPRO"))
blattprowert (cdr (assoc -3 blattdata))
;Punkt rechts oben:
blattproeed (cdr (assoc 1010 (cdar blattprowert)))
;Views:
blattdata (entget blattelement '("REFDMD"))
blattdmdwert (cdr (assoc -3 blattdata))
blattdmdeed (cdr (assoc 1005 (cdar blattdmdwert)))
blattdata (entget blattelement '("REFDMI"))
blattdmiwert (cdr (assoc -3 blattdata))
blattdmieed (cdr (assoc 1005 (cdar blattdmiwert)))
blattdata (entget blattelement '("REFDMV"))
blattdmvwert (cdr (assoc -3 blattdata))
blattdmveed (cdr (assoc 1005 (cdar blattdmvwert)))
blattdata (entget blattelement '("REFDMS"))
blattdmswert (cdr (assoc -3 blattdata))
blattdmseed (cdr (assoc 1005 (cdar blattdmswert)))
)
;nur gueltige Referenzen werden uebernommen:
(setq blattrefelement (handent blattrefeed))
(if (/= (entget blattrefelement) nil)
(setq blattlist (append blattlist (list blattnameeed))
schriftfeldlist (append schriftfeldlist (list schrrefeed))
masstablist (append masstablist (list blattmasseed))
kommentarlist (append kommentarlist (list blattkommeed))
blattelementlist (append blattelementlist (list blattrefelement))
plulist (append plulist (list blattplueed))
prolist (append prolist (list blattproeed))
blattschirmlist (append blattschirmlist
(list (strcat blattnameeed " Masstab " blattmass_schirm " " blattkommeed)))
pointlist (append pointlist (list blattelement))
refviewlist (append refviewlist
(list (list blattdmdeed blattdmieed blattdmveed blattdmseed)))
AIT-blattlist blattlist
AIT-plulist plulist
AIT-prolist prolist
)
;ungueltige Referenzen werden gespeichert:
(setq noblattlist (append noblattlist (list blattnameeed))
nomasstablist (append nomasstablist (list blattmasseed))
noplulist (append noplulist (list blattplueed))
noprolist (append noprolist (list blattproeed))
AIT-noblattlist noblattlist
AIT-nomasstablist nomasstablist
AIT-noplulist noplulist
AIT-noprolist noprolist
)
)
) ;repeat
)
)
;Blattauswahl bei vorhandenen Blaettern:
(if (/= blattlist nil)
(progn
(setq EAITdat_zeig (load_dialog (strcat EAITpfd "EAITEM.DCL")))
(setq thema (EAITmg "mb_mld21" "012");Hilfe fuer einen item-Befehl
stichwort ":item1"
dialogwert_blatt 0
blattwahl 0
AIT-blattwahl blattwahl
AIT-dialogwertblatt dialogwert_blatt
)
(if (not (new_dialog "EAIT3DBLATT" EAITdat_zeig)) (exit))
(set_tile "dwgname" (getvar "DWGNAME"))
(start_list "blattanzeige" 3)
(mapcar 'add_list blattschirmlist)
(end_list)
(action_tile "blattanzeige" "(setq blattwahl (atoi $value))")
(action_tile "goto" "(done_dialog 2)")
(action_tile "new" "(done_dialog 0)")
(action_tile "erase" "(done_dialog 1)")
(action_tile "ende" "(done_dialog 3)")
(action_tile "eait_hilfe" "(hilfe stichwort thema)")
(setq dialogwert_blatt (start_dialog))
(start_dialog)
(unload_dialog EAITdat_zeig)
(setq AIT-blattwahl blattwahl
AIT-dialogwertblatt dialogwert_blatt
)
) ;progn
) ;if
;Blatt loeschen:
(if (= dialogwert_blatt 1)
(progn
;Anpassungen Hauer:
(setq tsx (getvar "TILEMODE"))
(setvar "TILEMODE" 0)
(command EAITpap)
;Datenpunkt:
(entdel (nth blattwahl pointlist))
;Blatt:
(entdel (nth blattwahl blattelementlist))
;Schriftfeld:
(entdel (handent (nth blattwahl schriftfeldlist)))
;Views:
(entdel (handent (nth 0 (nth blattwahl refviewlist))))
(entdel (handent (nth 1 (nth blattwahl refviewlist))))
(entdel (handent (nth 2 (nth blattwahl refviewlist))))
(entdel (handent (nth 3 (nth blattwahl refviewlist))))
(setvar "TILEMODE" tsx)
)
)
;Gehezu Blatt:
(if (= dialogwert_blatt 2)
(progn
(setvar "TILEMODE" 0)
(command EAITpap)
(command EAITzom (nth blattwahl plulist) (nth blattwahl prolist))
)
)
;Nur wenn zu Blatt gegangen oder Blatt eingefuegt werden soll:
(if (or (= dialogwert_blatt 0) (= dialogwert_blatt 2))
(progn
;Nur wenn Blatt eingefuegt werden soll:
(if (= dialogwert_blatt 0)
(progn
;Festlegung von Abmassen:
(setq
AIT-masslist (list
(list 210.0 297.0)(list 420.0 297.0)
(list 594.0 420.0)(list 841.0 594.0)
(list 1189.0 841.0)
)
AIT-p1list (list (list 0.0 0.0 0.0) (list 600.0 0.0 0.0)
(list 1500.0 0.0 0.0) (list 2500.0 0.0 0.0)
(list 3500.0 0.0 0.0)
)
)
;Rahmen im Papierbereich einfuegen:
(setvar "TILEMODE" 0)
(command EAITpap)
(print)
(print)
(if (not EAITzrn)(load (strcat EAITpfn "EAITZRN"))(princ))(EAITzrn "A4" nil nil)
;Bei Abbruch Beenden der Funktion:
(if (/= AIT_dialogwert 0)
(progn
;Automatisches Regenerieren ausschalten:
;(setvar "REGENMODE" 0)
;Berechnung der Blattpunkte, Einfuegen Datenpunkt:
(EAITPberechnung AIT_rahmennr)
;Mansfen erzeugen und Masstab ermitteln:
;Draufsicht
(setq EAITmansfenlayer "EAITDIM_TOP")
; (EAITmansfen pmlu pmm "_e" "0,0,0" " 0.7070, 0.4083,-0.5774" "-0.7072, 0.4081,-0.5774");top
(EAITmansfen pmlu pmm "_e" "EAITucstop");top
(setq viewdata (entlast)
viewdmd viewdata
refdmd (cdr (assoc 5 (entget viewdata)))
)
(if (= AIT_mauto "1")
(EAITmberechnung viewdata)
(setq AIT_masstab (/ 1 AIT_ms1a)
)
)
(setq AIT_md AIT_masstab)
;Iso
(setq EAITmansfenlayer "EAITDIM_NO")
;(EAITmansfen pmru pmm "_e" "0,0,0" " 1,0,0" "0,1,0")
(EAITmansfen pmru pmm "_e" "world")
(setq viewdata (entlast)
viewdmi viewdata
refdmi (cdr (assoc 5 (entget viewdata)))
)
(if (= AIT_mauto "1")
(EAITmberechnung viewdata)
(setq AIT_masstab (/ 1 AIT_ms1a)
)
)
(setq AIT_mi AIT_masstab)
;Vorderansicht
(setq EAITmansfenlayer "EAITDIM_FRONT")
; (EAITmansfen pmlo pmm "_e" "0,0,0" " 0.7070, 0.4083,-0.5774" "-0.0001, 0.8165, 0.5773");fr
(EAITmansfen pmlo pmm "_e" "EAITucsfr");fr
(setq viewdata (entlast)
viewdmv viewdata
refdmv (cdr (assoc 5 (entget viewdata)))
)
(if (= AIT_mauto "1")
(EAITmberechnung viewdata)
(setq AIT_masstab (/ 1 AIT_ms1a)
)
)
(setq AIT_mv AIT_masstab)
;Seitenansicht
(setq EAITmansfenlayer "EAITDIM_SIDE")
; (EAITmansfen pmro pmm "_e" "0,0,0" " 0.7072,-0.4081, 0.5774" "-0.0001, 0.8165, 0.5773");fl
(EAITmansfen pmro pmm "_e" "EAITucsfl");fl
(setq viewdata (entlast)
viewdms viewdata
refdms (cdr (assoc 5 (entget viewdata)))
)
(if (= AIT_mauto "1")
(EAITmberechnung viewdata)
(setq AIT_masstab (/ 1 AIT_ms1a)
)
)
(setq AIT_ms AIT_masstab)
;Masstaebe auswerten:
(setq AIT_mlist (list AIT_md AIT_mi AIT_ms AIT_mv)
AIT_mlist1 (cons 'min AIT_mlist)
AIT_zm (eval AIT_mlist1)
AIT_zm (strcat (rtos AIT_zm 2 6) "xp")
)
(command EAITloes viewdmv viewdmd viewdmi viewdms "")
;Mansfen im neuen Masstab erzeugen:
;Draufsicht
(setq EAITmansfenlayer "EAITDIM_TOP")
; (EAITmansfen pmlu pmm AIT_zm "0,0,0" " 0.7070, 0.4083,-0.5774" "-0.7072, 0.4081,-0.5774");top
(EAITmansfen pmlu pmm AIT_zm "EAITucstop");top
(setq viewdata (entlast)
viewdmd viewdata
refdmd (cdr (assoc 5 (entget viewdata)))
)
;Iso
(setq EAITmansfenlayer "EAITDIM_NO")
;(EAITmansfen pmru pmm AIT_zm "0,0,0" " 1,0,0" "0,1,0")
(EAITmansfen pmru pmm AIT_zm "world")
(setq viewdata (entlast)
viewdmi viewdata
refdmi (cdr (assoc 5 (entget viewdata)))
)
;Vorderansicht
(setq EAITmansfenlayer "EAITDIM_FRONT")
; (EAITmansfen pmlo pmm AIT_zm "0,0,0" " 0.7070, 0.4083,-0.5774" "-0.0001, 0.8165, 0.5773");fr
(EAITmansfen pmlo pmm AIT_zm "EAITucsfr");fr
(setq viewdata (entlast)
viewdmv viewdata
refdmv (cdr (assoc 5 (entget viewdata)))
)
;Seitenansicht
(setq EAITmansfenlayer "EAITDIM_SIDE")
; (EAITmansfen pmro pmm "_e" "0,0,0" " 0.7072,-0.4081, 0.5774" "-0.0001, 0.8165, 0.5773");fl
(EAITmansfen pmro pmm "_e" "EAITucsfl");fl
(setq viewdata (entlast)
viewdms viewdata
refdms (cdr (assoc 5 (entget viewdata)))
)
(print)(print)(print)(print)(print)
) ;progn AIT_dialogwert = 0
) ;if bei Blatteinfuegung aus EAIT_zrn.lsp
) ;progn dialogwert_blatt = 0
) ;if bei Blattauswahl aus vorhandenen Blaettern
(if (/= AIT_dialogwert 0)
(progn
;bei gehezu Blatt:
;es muessen alle Variablen mit Werten belegt werden, welche auch
;beim Einfuegen mit Werten belegt werden
(if (= dialogwert_blatt 2)
(progn
(setq AIT_zm (nth blattwahl masstablist)
AIT_rahmen (nth blattwahl blattlist)
viewdmd (handent (nth 0 (nth blattwahl refviewlist)))
viewdmi (handent (nth 1 (nth blattwahl refviewlist)))
viewdmv (handent (nth 2 (nth blattwahl refviewlist)))
viewdms (handent (nth 3 (nth blattwahl refviewlist)))
refdmd (nth 0 (nth blattwahl refviewlist))
refdmi (nth 1 (nth blattwahl refviewlist))
refdmv (nth 2 (nth blattwahl refviewlist))
refdms (nth 3 (nth blattwahl refviewlist))
;Blatt:
AIT_rahmenelement (nth blattwahl blattelementlist)
;Schriftfeld:
AIT_schriftfeldelement (handent (nth blattwahl schriftfeldlist))
)
(cond ((= AIT_rahmen "DIN A4")(setq AIT_rahmennr 0))
((= AIT_rahmen "DIN A3")(setq AIT_rahmennr 1))
((= AIT_rahmen "DIN A2")(setq AIT_rahmennr 2))
((= AIT_rahmen "DIN A1")(setq AIT_rahmennr 3))
((= AIT_rahmen "DIN A0")(setq AIT_rahmennr 4))
)
;alten Datenpunkt loeschen:
(command EAITloes (nth blattwahl pointlist) "")
;Berechnung der Blattpunkte, Einfuegen neuen Datenpunkt:
(EAITPberechnung AIT_rahmennr)
) ;progn dialogwert_blatt = 2
) ;if
;Masstabstring erzeugen:
(EAITmstring AIT_zm)
;Dialogbox Masstab anpassen:
(setq EAITdat_zeig (load_dialog (strcat EAITpfd "EAITEM.DCL")))
(setq dialogwert 5
thema (EAITmg "mb_mld21" "012");Hilfe fuer einen item-Befehl
stichwort ":item1"
m_neu AIT_screenmasstab
AIT_zmstart AIT_zm ;Masstab zu Beginn der Dialogbox
AIT_zmchange AIT_zm ;Masstab zu Beginn der Dialogbox
kommentar ""
)
(if (= dialogwert_blatt 2)
(setq kommentar (nth blattwahl kommentarlist))
)
(while (< 2 dialogwert)
(if (not (new_dialog "EAITMASSTAB" EAITdat_zeig)) (exit))
(set_tile "dwgname" (getvar "DWGNAME"))
(set_tile "bl_format" AIT_rahmen)
(set_tile "m_akt" AIT_screenmasstab)
(set_tile "m_neu" AIT_screenmasstab)
(set_tile "kommentar" kommentar)
(action_tile "m_neu" "(setq m_neu $value)(EAITmasstabneu m_neu)")
(action_tile "kommentar" "(setq kommentar $value)")
(action_tile "cancel_all" "(done_dialog 2)")
(action_tile "cancel" "(done_dialog 1)")
(action_tile "accept" "(done_dialog 0)")
(action_tile "pan" "(done_dialog 3)")
(action_tile "vsicht" "(done_dialog 4)")
(action_tile "help" "(hilfe stichwort thema)")
(setq dialogwert (start_dialog))
(if (= dialogwert 3) ;Pan - Funktion
(progn
(print)
(print)
(while (/= panwahl (EAITmg "mb_mld21" "005")) ;solange nicht "Ende"
(initget (strcat (EAITmg "mb_mld21" "003") " " (EAITmg "mb_mld21" "004") " " (EAITmg "mb_mld21" "005"))) ;Ansicht Pan Ende
(setq panwahl (getkword (strcat "\n" (EAITmg "mb_mld21" "006") " "))) ;Ansichtswahl / Pan / Ende
(if (= panwahl nil) (setq panwahl (EAITmg "mb_mld21" "005"))); "Ende" ist Vorgabe und wird durch RETURN erreicht
(cond
; wenn "Ansichtswahl"
((= panwahl (EAITmg "mb_mld21" "003"))
(command EAITmod)
(EAITmsg "mb_mld21" "\n" "007" nil);Ansicht durch Doppelklick waehlen!
(setq panfenster (getpoint))
(EAITmsg "mb_mld21" "\n" "008" nil);Verschiebung:
(setq panp1 (getpoint))
(EAITmsg "mb_mld21" "\n" "009" nil);zweiter Punkt:
(setq panp2 (getpoint panp1))
;Anpassungen Hauer:
(if (and (/= panp1 nil)(/= panp2 nil))
(progn
(setq expold (getvar "EXPERT"))
(setvar "EXPERT" 1)
(command EAITpan panp1 panp2)
(setvar "EXPERT" expold)
)
)
;Anpassungen Hauer:
;Linien verdecken:
(command EAITverd)
(command EAITpap)
(print)(print)(print)(print)(print)
)
; wenn "Pan"
((= panwahl (EAITmg "mb_mld21" "004"))
(command EAITmod)
(EAITmsg "mb_mld21" "\n" "008" nil);Verschiebung:
(setq panp1 (getpoint))
(EAITmsg "mb_mld21" "\n" "009" nil);zweiter Punkt:
(setq panp2 (getpoint panp1))
;Anpassungen Hauer:
(if (and (/= panp1 nil)(/= panp2 nil))
(progn
(setq expold (getvar "EXPERT"))
(setvar "EXPERT" 1)
(command EAITpan panp1 panp2)
(setvar "EXPERT" expold)
)
)
;Anpassungen Hauer:
;Linien verdecken:
(command EAITverd)
(command EAITpap)
(print)(print)(print)(print)(print)
)
)
) ;while
(setq panwahl nil)
) ;progn
) ;if
;Masstaebe:
;- AIT_zmstart: Masstab zu Beginn der Dialogbox
;- AIT_zmchange: Masstab vor der Aenderung in Dialogbox
;- AIT_zm: Masstab aktuell
(if (= dialogwert 4) ;Zoom-Funktion
(progn
(print)
(print)
;nur bei neuem Masstab:
(if (/= AIT_zm AIT_zmchange)
(progn
(command EAITloes viewdmv viewdmd viewdmi viewdms "")
;Mansfen im neuen Masstab erzeugen:
;Draufsicht
(setq EAITmansfenlayer "EAITDIM_TOP")
;(EAITmansfen pmlu pmm AIT_zm "0,0,0" " 0.7070, 0.4083,-0.5774" "-0.7072, 0.4081,-0.5774");top
(EAITmansfen pmlu pmm AIT_zm "EAITucstop");top
(setq viewdata (entlast)
viewdmd viewdata
refdmd (cdr (assoc 5 (entget viewdata)))
)
;Iso
(setq EAITmansfenlayer "EAITDIM_NO")
;(EAITmansfen pmru pmm AIT_zm "0,0,0" " 1,0,0" "0,1,0")
(EAITmansfen pmru pmm AIT_zm "world")
(setq viewdata (entlast)
viewdmi viewdata
refdmi (cdr (assoc 5 (entget viewdata)))
)
;Vorderansicht
(setq EAITmansfenlayer "EAITDIM_FRONT")
;(EAITmansfen pmlo pmm AIT_zm "0,0,0" " 0.7070, 0.4083,-0.5774" "-0.0001, 0.8165, 0.5773");fr
(EAITmansfen pmlo pmm AIT_zm "EAITucsfr");fr
(setq viewdata (entlast)
viewdmv viewdata
refdmv (cdr (assoc 5 (entget viewdata)))
)
;Seitenansicht
(setq EAITmansfenlayer "EAITDIM_SIDE")
;(EAITmansfen pmro pmm AIT_zm "0,0,0" " 0.7072,-0.4081, 0.5774" "-0.0001, 0.8165, 0.5773");fl
(EAITmansfen pmro pmm AIT_zm "EAITucsfl");fl
(setq viewdata (entlast)
viewdms viewdata
refdms (cdr (assoc 5 (entget viewdata)))
)
(print)(print)(print)(print)(print)
) ;progn
) ;if
(setq zoomwahl (EAITmg "mb_mld21" "005"))
(initget (strcat (EAITmg "mb_mld21" "010") " " (EAITmg "mb_mld21" "005"))) ;Zurⁿck Ende
(setq zoomwahl (getkword (strcat "\n" (EAITmg "mb_mld21" "011") " ")))
;Anpassungen Hauer:
(if (= zoomwahl nil)(setq zoomwahl (EAITmg "mb_mld21" "005")))
;nur bei Masstabsaenderung:
(if (and (= zoomwahl (EAITmg "mb_mld21" "010")) (/= AIT_zm AIT_zmchange))
(progn
(command EAITloes viewdmv viewdmd viewdmi viewdms "")
;Mansfen im alten Masstab wiederherstellen:
Bemstil einrichten:
(setvar "DIMSCALE" (/ 1 (atof AIT_zmchange)))
;Draufsicht
(setq EAITmansfenlayer "EAITDIM_TOP")
;(EAITmansfen pmlu pmm AIT_zmchange "0,0,0" " 0.7070, 0.4083,-0.5774" "-0.7072, 0.4081,-0.5774");top
(EAITmansfen pmlu pmm AIT_zmchange "EAITucstop");top
(setq viewdata (entlast)
viewdmd viewdata
refdmd (cdr (assoc 5 (entget viewdata)))
)
;Iso
(setq EAITmansfenlayer "EAITDIM_NO")
;(EAITmansfen pmru pmm AIT_zmchange "0,0,0" " 1,0,0" "0,1,0")
(EAITmansfen pmru pmm AIT_zmchange "world")
(setq viewdata (entlast)
viewdmi viewdata
refdmi (cdr (assoc 5 (entget viewdata)))
)
;Vorderansicht
(setq EAITmansfenlayer "EAITDIM_FRONT")
;(EAITmansfen pmlo pmm AIT_zmchange "0,0,0" " 0.7070, 0.4083,-0.5774" "-0.0001, 0.8165, 0.5773");fr
(EAITmansfen pmlo pmm AIT_zmchange "EAITucsfr");fr
(setq viewdata (entlast)
viewdmv viewdata
refdmv (cdr (assoc 5 (entget viewdata)))
)
;Seitenansicht
(setq EAITmansfenlayer "EAITDIM_SIDE")
;(EAITmansfen pmro pmm AIT_zmchange "0,0,0" " 0.7072,-0.4081, 0.5774" "-0.0001, 0.8165, 0.5773");fl
(EAITmansfen pmro pmm AIT_zmchange "EAITucsfl");fl
(setq viewdata (entlast)
viewdms viewdata
refdms (cdr (assoc 5 (entget viewdata)))
)
(setq AIT_zm AIT_zmchange)
(print)(print)(print)(print)(print)
)
)
(if (= zoomwahl (EAITmg "mb_mld21" "005"))
(progn
(setq AIT_zmchange AIT_zm)
)
)
;Sicherung des Zwischenmasstabes
;Masstabstring erzeugen:
(EAITmstring AIT_zm)
)
)
(if (= dialogwert 0) ;Ok-Button
(progn
(print)
(print)
;nur bei neuem Masstab:
(if (/= AIT_zm AIT_zmchange)
(progn
(command EAITloes viewdmv viewdmd viewdmi viewdms "")
;Mansfen im neuen Masstab erzeugen:
Bemstil einrichten:
(setvar "DIMSCALE" (/ 1 (atof AIT_zm)))
;Draufsicht
(setq EAITmansfenlayer "EAITDIM_TOP")
;(EAITmansfen pmlu pmm AIT_zm "0,0,0" " 0.7070, 0.4083,-0.5774" "-0.7072, 0.4081,-0.5774");top
(EAITmansfen pmlu pmm AIT_zm "EAITucstop");top
(setq viewdata (entlast)
viewdmd viewdata
refdmd (cdr (assoc 5 (entget viewdata)))
)
;Iso
(setq EAITmansfenlayer "EAITDIM_NO")
;(EAITmansfen pmru pmm AIT_zm "0,0,0" " 1,0,0" "0,1,0")
(EAITmansfen pmru pmm AIT_zm "world")
(setq viewdata (entlast)
viewdmi viewdata
refdmi (cdr (assoc 5 (entget viewdata)))
)
;Vorderansicht
(setq EAITmansfenlayer "EAITDIM_FRONT")
;(EAITmansfen pmlo pmm AIT_zm "0,0,0" " 0.7070, 0.4083,-0.5774" "-0.0001, 0.8165, 0.5773");fr
(EAITmansfen pmlo pmm AIT_zm "EAITucsfr");fr
(setq viewdata (entlast)
viewdmv viewdata
refdmv (cdr (assoc 5 (entget viewdata)))
)
;Seitenansicht
(setq EAITmansfenlayer "EAITDIM_SIDE")
;(EAITmansfen pmro pmm AIT_zm "0,0,0" " 0.7072,-0.4081, 0.5774" "-0.0001, 0.8165, 0.5773");fl
(EAITmansfen pmro pmm AIT_zm "EAITucsfl");fl
(setq viewdata (entlast)
viewdms viewdata
refdms (cdr (assoc 5 (entget viewdata)))
)
(print)(print)(print)(print)(print)
) ;progn
) ;if
)
)
(if (= dialogwert 1) ;Cancel-Button
(progn
(print)
(print)
;nur bei neuem Masstab:
(if (/= AIT_zm AIT_zmstart)
(progn
(command EAITloes viewdmv viewdmd viewdmi viewdms "")
;Mansfen im neuen Masstab erzeugen:
Bemstil einrichten:
(setvar "DIMSCALE" (/ 1 (atof AIT_zmstart)))
;Draufsicht
(setq EAITmansfenlayer "EAITDIM_TOP")
;(EAITmansfen pmlu pmm AIT_zmstart "0,0,0" " 0.7070, 0.4083,-0.5774" "-0.7072, 0.4081,-0.5774");top
(EAITmansfen pmlu pmm AIT_zmstart "EAITucstop");top
(setq viewdata (entlast)
viewdmd viewdata
refdmd (cdr (assoc 5 (entget viewdata)))
)
;Iso
(setq EAITmansfenlayer "EAITDIM_NO")
;(EAITmansfen pmru pmm AIT_zmstart "0,0,0" " 1,0,0" "0,1,0")
(EAITmansfen pmru pmm AIT_zmstart "world")
(setq viewdata (entlast)
viewdmi viewdata
refdmi (cdr (assoc 5 (entget viewdata)))
)
;Vorderansicht
(setq EAITmansfenlayer "EAITDIM_FRONT")
;(EAITmansfen pmlo pmm AIT_zmstart "0,0,0" " 0.7070, 0.4083,-0.5774" "-0.0001, 0.8165, 0.5773");fr
(EAITmansfen pmlo pmm AIT_zmstart "EAITucsfr");fr
(setq viewdata (entlast)
viewdmv viewdata
refdmv (cdr (assoc 5 (entget viewdata)))
)
;Seitenansicht
(setq EAITmansfenlayer "EAITDIM_SIDE")
;(EAITmansfen pmro pmm AIT_zmstart "0,0,0" " 0.7072,-0.4081, 0.5774" "-0.0001, 0.8165, 0.5773");fl
(EAITmansfen pmro pmm AIT_zmstart "EAITucsfl");fl
(setq viewdata (entlast)
viewdms viewdata
refdms (cdr (assoc 5 (entget viewdata)))
)
(print)(print)(print)(print)(print)
) ;progn
) ;if
(setq AIT_zm AIT_zmstart)
)
)
(if (= dialogwert 2) ;Blatt loeschen
(progn
(command EAITpap)
(command EAITloes viewdmv viewdmd viewdmi viewdms AITblattpunkt "")
(command EAITloes "_w" plu pro "")
(setvar "TILEMODE" 1)
)
)
(start_dialog)
) ;while
(unload_dialog EAITdat_zeig)
;EED-Verknuepfung realisieren:
;nur wenn Blatt vorhanden:
(if (/= dialogwert 2)
(progn
;Blattreferenz:
(if (not (tblsearch "appid" "BLATT3D_REFERENZ"))
(regapp "BLATT3D_REFERENZ")
)
;Schriftfeldreferenz:
(if (not (tblsearch "appid" "SCHR3D_REFERENZ"))
(regapp "SCHR3D_REFERENZ")
)
;Blattname:
(if (not (tblsearch "appid" "BLATTNAME"))
(regapp "BLATTNAME")
)
;Masstab:
(if (not (tblsearch "appid" "MASSTAB"))
(regapp "MASSTAB")
)
;Kommentar:
(if (not (tblsearch "appid" "KOMMENTAR"))
(regapp "KOMMENTAR")
)
;Blatt Ecke links unten:
(if (not (tblsearch "appid" "BLATTPLU"))
(regapp "BLATTPLU")
)
;Blatt Ecke rechts oben:
(if (not (tblsearch "appid" "BLATTPRO"))
(regapp "BLATTPRO")
)
;View-Referenzen:
(if (not (tblsearch "appid" "REFDMD"))
(regapp "REFDMD")
)
;View-Referenzen:
(if (not (tblsearch "appid" "REFDMI"))
(regapp "REFDMI")
)
;View-Referenzen:
(if (not (tblsearch "appid" "REFDMV"))
(regapp "REFDMV")
)
;View-Referenzen:
(if (not (tblsearch "appid" "REFDMS"))
(regapp "REFDMS")
)
;Blatt-Referenz festlegen:
(setq
blattref_info (cdr (assoc 5 (entget AIT_rahmenelement)))
)
;Schriftfeld-Referenz festlegen:
(setq
schrref_info (cdr (assoc 5 (entget AIT_schriftfeldelement)))
)
;Punkt modifizieren:
;EED: - Referenz des Blattes
; - Punkt
; Verknüpfung Punkt - Blattreferenz
(setq
blattreferenz (list "BLATT3D_REFERENZ" (cons 1005 blattref_info))
schrreferenz (list "SCHR3D_REFERENZ" (cons 1005 schrref_info))
blattname (list "BLATTNAME" (cons 1000 AIT_rahmen))
blattmasstab (list "MASSTAB" (cons 1000 AIT_zm))
blattkommentar (list "KOMMENTAR" (cons 1000 kommentar))
blattplu (list "BLATTPLU" (cons 1010 plu))
blattpro (list "BLATTPRO" (cons 1010 pro))
viewdmdreferenz (list "REFDMD" (cons 1005 refdmd))
viewdmireferenz (list "REFDMI" (cons 1005 refdmi))
viewdmvreferenz (list "REFDMV" (cons 1005 refdmv))
viewdmsreferenz (list "REFDMS" (cons 1005 refdms))
gesamt_id (list
(list -3 blattname blattmasstab blattkommentar blattreferenz schrreferenz viewdmdreferenz
viewdmireferenz viewdmvreferenz viewdmsreferenz blattplu blattpro)
)
AIT-neudata (append (entget AITblattpunkt) gesamt_id)
)
(entmod AIT-neudata)
)
)
(setvar "CLAYER" "0")
; (command EAITlay EAITlfr "EAIT3D_VIEW" "")
(setq EAITmansfen3d nil)
;Automatisches Regenerieren einschalten:
;(setvar "REGENMODE" 1)
) ;progn AIT_dialogwert = 0
) ;if bei Blatteinfuegung aus EAIT_zrn.lsp
) ;progn dialogwert_blatt = 0 oder 2
) ;if bei Blattauswahl aus vorhandenen Blaettern
;Masstab anpassen:
(setq EAITms (getvar "DIMSCALE"))
(EAITmkr "B" nil)
(EAITvarz)
(princ)
);defun EAIT3DMANSFEN
;--------------------------------------------------------------------------
;Definieren der Funktion zur Berechnung von Blattpunkten
;und Einfuegen des Datenpunkts + Layerfestlegung
(defun EAITPberechnung (AIT_rahmennr / rahmendata ebene blattwert
blatt01
)
;Berechnung der Mansfenpunkte:
(setq rahmendata (nth AIT_rahmennr AIT-masslist)
;Blatteckpunkte:
rxlu (car (nth AIT_rahmennr AIT-p1list))
rylu (cadr (nth AIT_rahmennr AIT-p1list))
plu (list rxlu rylu 0.0)
rxro (car rahmendata) ryro (cadr rahmendata)
pro (list rxro ryro 0.0)
pro (polar pro 0.0 rxlu)
)
;bei Neueinfuegungen Mansfenpunkte bei schon vorhandenen
;Blaettern korrigieren:
(if (= AIT-dialogwertblatt 0)
(progn
;schon ein Blatt in der Groesse eingefuegt:
(if (or (/= (member AIT_rahmen AIT-noblattlist) nil)(/= (member AIT_rahmen AIT-blattlist) nil))
(progn
(setq blatthoehe (+ (cadr (nth AIT_rahmennr AIT-masslist)) 100))
;Checken des EP:
(while (or (/= (member plu AIT-plulist) nil)(/= (member plu AIT-noplulist) nil))
(setq
plu (polar plu (/ pi 2) blatthoehe)
pro (polar plu 0.0 rxro)
pro (polar pro (/ pi 2) ryro)
)
) ;while
) ;progn
) ;if
) ;progn
) ;if
;bei Gehezu Blatt Mansfenpunkte bei schon vorhandenen
;Blaettern korrigieren:
(if (= AIT-dialogwertblatt 2)
(progn
(setq plu (nth AIT-blattwahl AIT-plulist)
pro (nth AIT-blattwahl AIT-prolist)
)
)
)
;Mansfeneckpunkte:
(setq rmxlu (car (polar plu 0 5))
rmylu (cadr (polar plu (/ pi 2) 60))
rmxro (car (polar pro pi 5))
rmyro (cadr (polar pro (* pi 1.5) 5))
rmxm (/ (+ rmxlu rmxro) 2)
rmym (/ (+ rmylu rmyro) 2)
pmlu (list rmxlu rmylu)
pmlo (list rmxlu rmyro)
pmru (list rmxro rmylu)
pmro (list rmxro rmyro)
pmm (list rmxm rmym)
)
;Korrektur bei A4-Rahmen:
(if (= AIT_rahmennr 0)
(setq pmlu (polar pmlu 0 18)
pmlo (polar pmlo 0 18)
pmm (polar pmm 0 9)
)
)
(if (not (tblsearch "LAYER" "EAIT3D_VDAT"))
(progn
(command EAITlay EAITlma "EAIT3D_VDAT" EAITlty "CONTINUOUS" "EAIT3D_VDAT" EAITlfa "5" "EAIT3D_VDAT" "")
(setvar "CLAYER" "EAIT3D_VDAT")
)
(progn
(command EAITlay EAITlta "EAIT3D_VDAT" "")
(setvar "CLAYER" "EAIT3D_VDAT")
)
)
;Datenpunkt einfuegen:
(command EAITpkt plu)
(setq AITblattpunkt (entlast))
(setvar "CLAYER" "0")
(command EAITlay EAITlfr "EAIT3D_VDAT" "")
(if (not (tblsearch "LAYER" "EAIT3D_VIEW"))
(progn
(command EAITlay EAITlma "EAIT3D_VIEW" EAITlty "CONTINUOUS" "EAIT3D_VIEW" EAITlfa "5" "EAIT3D_VIEW" "")
(setvar "CLAYER" "EAIT3D_VIEW"))
(progn
(command EAITlay EAITlta "EAIT3D_VIEW" "")
(setvar "CLAYER" "EAIT3D_VIEW")
)
)
;Limiten setzen:
(command EAITlim plu pro)
);defun EAITPberechnung
;--------------------------------------------------------------------------
;Definieren der Funktion zur Erzeugung des Masstabstrings
(defun EAITmstring (AIT_zm / AIT_zm1 AIT_zm2 scr1 scr2 mstr1 mstr2 mstr3)
;Masstab fuer Bildschirmausgabe aufbereiten:
;AIT_zm = Masstab
;AIT_zm1 = Masstab ohne xp
;AIT_zm2 = Masstab als Zahl
;AIT_screenmasstab = Bildschirmmasstab
(setq AIT_zm1 (substr AIT_zm 1 (- (strlen AIT_zm) 2))
AIT_zm2 (atof AIT_zm1)
scr1 (strlen AIT_zm1)
scr2 1
mstr1 ""
mstr2 ""
)
(if (>= AIT_zm2 1)
(progn
(repeat scr1
(setq mstr1 (substr AIT_zm1 scr2 1)
scr2 (+ scr2 1)
mstr2 (strcat mstr2 mstr1)
)
(if (= mstr1 ".")
(setq mstr3 mstr2
mstr3 (substr mstr3 1 (- (strlen mstr3) 1))
mstr3 (strcat mstr3 ":1")
)
)
) ;repeat
) ;progn
) ;if
(if (< AIT_zm2 1)
(progn
(setq AIT_zm2 (/ 1 AIT_zm2)
AIT_zm1 (rtos AIT_zm2 2 0)
scr1 (strlen AIT_zm1)
)
(repeat scr1
(setq mstr1 (substr AIT_zm1 scr2 1)
scr2 (+ scr2 1)
mstr2 (strcat mstr2 mstr1)
)
(if (> scr2 scr1)
(setq mstr3 mstr2
mstr3 (strcat "1:" mstr3)
)
)
) ;repeat
) ;progn
) ;if
(setq AIT_screenmasstab mstr3)
);defun EAITmstring
;--------------------------------------------------------------------------
;Definieren der Funktion zur Mansfengenerierung
;(defun EAITmansfen ( mp1 mp2 zoomfaktor bksp1 bksp2 bksp3 / bemlayerlist viewele expold)
(defun EAITmansfen ( mp1 mp2 zoomfaktor bksart / bemlayerlist viewele expold)
(setq bemlayerlist (list "EAITDIM_TOP" "EAITDIM_FRONT" "EAITDIM_SIDE" "EAITDIM_VAR"))
(command EAITman mp1 mp2)
(setq viewele (entlast))
(command EAITman EAITmplot EAITmon viewele "")
(command EAITmod)
;alle Layer frieren:
(if (= EAITmansfenlayer "EAITDIM_NO")
(progn
(foreach n bemlayerlist
(command EAITvplay EAITlfr n "ak" "")
)
)
)
;alle Layer ausser fuer Fenster definierten und var frieren
(if (/= EAITmansfenlayer "EAITDIM_NO")
(progn
(foreach n bemlayerlist
(if (and (/= n EAITmansfenlayer)(/= n "EAITDIM_VAR"))
(command EAITvplay EAITlfr n "ak" "")
)
)
)
)
; (command EAITbks EAITb3p bksp1 bksp2 bksp3)
(if (= bksart "world")
(command EAITbks EAITbwe)
(command EAITbks EAITbho bksart)
)
(command EAITplan EAITpla)
(setq expold (getvar "EXPERT"))
(setvar "EXPERT" 1)
(command EAITzom zoomfaktor)
(setvar "EXPERT" expold)
(command EAITbks EAITbwe)
(command EAITverd)
(command EAITpap)
)
;--------------------------------------------------------------------------
;Definieren der Funktion Masstabsberechnung im aktuellen View
(defun EAITmberechnung ( viewdata / massstablist ele2 ele2a ele3 ele4 ele5
l1 l2 phoehe mass1 mass2
)
(setq massstablist (list 500.0 200.0 100.0
50.0 20.0 10.0
5.0 2.0 1.0
0.5 0.2 0.1
0.05 0.02 0.01
0.005 0.002 0.001
0.0005 0.0002 0.0001
0.00005
)
l1 (length massstablist)
l2 0
)
(setq ele2 (entget viewdata (list "ACAD"))
phoehe (cdr (assoc 41 ele2))
ele2a (assoc -3 ele2)
ele3 (cdr (assoc -3 ele2))
ele4 (cdar ele3)
ele5 (cdr (nth 6 ele4))
skalier (/ phoehe ele5) ;aktueller Skalierfaktor im View
)
;naechstkleinerer genormter Masstab wird ermittelt:
(repeat (- l1 1)
(setq mass1 (nth l2 massstablist)
mass2 (nth (+ l2 1) massstablist)
)
(if (and (<= skalier mass1) (>= skalier mass2))
(setq skalier1 mass2)
)
(setq l2 (+ l2 1))
)
;skalier : ermittelter Massstabswert im View ungenormt
;skalier1 : ermittelter Massstabswert im View genormt
;m: Massstabswert
(setq AIT_masstab skalier1)
(if (/= skalier nil)
(progn
;Bemstil einrichten:
(setvar "DIMSCALE" (/ 1 skalier1))
)
)
;genormter Masstab kann nicht ermittelt werden
(if (= skalier1 nil) (setq AIT_masstab skalier))
);defun EAITmberechnung
;--------------------------------------------------------------------------
;Definieren der Funktion zur Masstabsumwandlung aus Dialogbox
(defun EAITmasstabneu (m_neu / z1 z2 strl original ansicht dp mx dp1)
(setq strl (strlen m_neu)
z1 1
z2 1
original ""
ansicht ""
dp "no"
dp1 "ok"
mx ""
)
(repeat strl
(setq str (substr m_neu z1 z2)
z1 (+ z1 1)
)
(if (and (> (ascii str ) 47) (< (ascii str ) 59))
(progn
(setq
mx (strcat mx str)
)
(if (= str ":")
(setq dp "ok"
ansicht mx
ansicht (substr ansicht 1 (- (strlen ansicht) 1))
mx ""
)
)
) ;progn
(setq dp1 "no")
) ;if
) ;repeat
(if (and (= dp "ok")(= dp1 "ok"))
(progn
(setq original mx
ansicht (atof ansicht)
original (atof original)
AIT_zm (/ ansicht original)
AIT_zm (strcat (rtos AIT_zm 2 6) "xp")
)
;Bemstil einrichten:
(setvar "DIMSCALE" (/ original ansicht))
)
)
);defun EAITmasstabneu
(princ)
;************************************************************************
;Item - Projektarbeiten Hauer Ende
;************************************************************************